package pro.shushi.pamirs.hr.api.service;

import pro.shushi.pamirs.core.common.standard.service.StandardModelService;
import pro.shushi.pamirs.framework.connectors.data.sql.query.LambdaQueryWrapper;
import pro.shushi.pamirs.hr.api.model.org.Department;
import pro.shushi.pamirs.meta.annotation.Fun;
import pro.shushi.pamirs.meta.annotation.Function;
import pro.shushi.pamirs.meta.api.dto.condition.Pagination;

import java.util.List;

@Fun(DepartmentService.FUN_NAMESPACE)
public interface DepartmentService extends StandardModelService<Department> {

    String FUN_NAMESPACE = "hr.simple.service.DepartmentService";

    @Function
    @Override
    Department create(Department data);

    @Function
    @Override
    Department update(Department data);

    @Function
    @Override
    Pagination<Department> queryPage(Pagination<Department> page, LambdaQueryWrapper<Department> queryWrapper);

    @Function
    @Override
    Department queryOne(Department query);

    @Function
    @Override
    Department queryOneByWrapper(LambdaQueryWrapper<Department> queryWrapper);

    @Function
    @Override
    List<Department> queryListByWrapper(LambdaQueryWrapper<Department> queryWrapper);
    
    @Function
    @Override
    Long count(LambdaQueryWrapper<Department> queryWrapper);

}
